PWM (Pulse Width Modulation) এর মাধ্যমে Analog Output

Computer Programming - আরডুইনো (Arduino) Analog Input এবং Output (Analog Input and Output in Arduino) |
253
253

PWM কি?

PWM (Pulse Width Modulation) হলো একটি প্রযুক্তি যা ডিজিটাল পিনের মাধ্যমে এনালগ ফলাফল উৎপন্ন করতে ব্যবহৃত হয়। এটি সাধারণত এমন ক্ষেত্রে ব্যবহৃত হয় যেখানে অ্যানালগ সংকেতের প্রয়োজন হয়, কিন্তু শুধুমাত্র ডিজিটাল আউটপুট পাওয়া যায়। PWM-এর মাধ্যমে, একটি পিনে HIGH এবং LOW সিগন্যালের মধ্যবর্তী সময়ের পরিবর্তন করে একটি গড় ভোল্টেজ তৈরি করা হয়, যা অ্যানালগ আউটপুটের মতো আচরণ করে।

PWM কীভাবে কাজ করে?

PWM একটি সংকেতের "ডিউটি সাইকেল" নিয়ন্ত্রণের মাধ্যমে কাজ করে। ডিউটি সাইকেল বলতে বোঝায় HIGH অবস্থা এবং LOW অবস্থার মধ্যকার সময়ের অনুপাত। এটি শতকরা হারে প্রকাশ করা হয়:

  • 0% ডিউটি সাইকেল: সিগন্যাল সর্বদা LOW।
  • 50% ডিউটি সাইকেল: সিগন্যাল সমান সময়ের জন্য HIGH এবং সমান সময়ের জন্য LOW।
  • 100% ডিউটি সাইকেল: সিগন্যাল সর্বদা HIGH।

ডিউটি সাইকেলের পরিবর্তনের মাধ্যমে গড় আউটপুট ভোল্টেজ নিয়ন্ত্রণ করা হয়। উদাহরণস্বরূপ, একটি 50% ডিউটি সাইকেল 5V সরবরাহে 2.5V গড় আউটপুট ভোল্টেজ প্রদান করে।

Arduino তে PWM পিন

Arduino তে নির্দিষ্ট পিনগুলোতে PWM আউটপুট প্রদান করা সম্ভব। সাধারণত এই পিনগুলোতে ~ চিহ্ন থাকে (যেমন: ~3, ~5, ~6, ~9, ~10, এবং ~11)। এই পিনগুলোতে analogWrite() ফাংশনের মাধ্যমে PWM আউটপুট প্রদান করা যায়।

analogWrite() ফাংশনের ব্যবহার

analogWrite() ফাংশন ব্যবহার করে PWM আউটপুট প্রদান করা হয়। এই ফাংশনটি দুইটি প্যারামিটার নেয়:

  • পিন নম্বর
  • মান (0 থেকে 255 এর মধ্যে), যেখানে 0 মানে 0% ডিউটি সাইকেল এবং 255 মানে 100% ডিউটি সাইকেল।

উদাহরণ:

void setup() {
  pinMode(9, OUTPUT); // পিন 9 কে আউটপুট হিসেবে সেট করা
}

void loop() {
  analogWrite(9, 127); // 50% ডিউটি সাইকেল (গড় আউটপুট ভোল্টেজ প্রায় 2.5V)
  delay(1000);
  
  analogWrite(9, 255); // 100% ডিউটি সাইকেল (গড় আউটপুট ভোল্টেজ 5V)
  delay(1000);
}

PWM এর ব্যবহারিক উদাহরণ

PWM সাধারণত নিচের ক্ষেত্রে ব্যবহৃত হয়:

  • LED উজ্জ্বলতা নিয়ন্ত্রণ: LED এর উজ্জ্বলতা পরিবর্তনের জন্য PWM ব্যবহার করা যায়। analogWrite() ফাংশনের মাধ্যমে LED এর গড় ভোল্টেজ নিয়ন্ত্রণ করে এর উজ্জ্বলতা বাড়ানো বা কমানো হয়।
  • মোটর গতি নিয়ন্ত্রণ: মোটরের গতির নিয়ন্ত্রণে PWM ব্যবহার করে ভোল্টেজ নিয়ন্ত্রণ করা হয়, যা মোটরের গতি কমানো বা বাড়ানোর জন্য কার্যকর।
  • টোন উৎপন্ন করা: স্পিকারের মাধ্যমে বিভিন্ন ফ্রিকোয়েন্সি টোন তৈরি করার জন্য PWM ব্যবহার করা হয়।

LED উজ্জ্বলতা নিয়ন্ত্রণ উদাহরণ

int brightness = 0; // LED এর প্রাথমিক উজ্জ্বলতা
int fadeAmount = 5; // উজ্জ্বলতা পরিবর্তনের পরিমাণ

void setup() {
  pinMode(9, OUTPUT); // পিন 9 কে আউটপুট হিসেবে সেট করা
}

void loop() {
  analogWrite(9, brightness); // বর্তমান উজ্জ্বলতা অনুযায়ী LED চালানো
  brightness += fadeAmount; // উজ্জ্বলতা পরিবর্তন
  
  // উজ্জ্বলতার সীমা নির্ধারণ
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount; // উল্টা দিকে পরিবর্তন
  }
  delay(30); // সামান্য বিলম্ব
}

এই উদাহরণে, LED এর উজ্জ্বলতা ধীরে ধীরে বৃদ্ধি এবং হ্রাস পায়, যার ফলে এটি ধীরে ধীরে জ্বলে এবং নিভে।

PWM এর সীমাবদ্ধতা

  • গড় আউটপুট ভোল্টেজ: PWM সরাসরি অ্যানালগ আউটপুট নয়, বরং ডিজিটাল আউটপুটের মাধ্যমে একটি গড় অ্যানালগ ফলাফল তৈরি করে। ফলে, এটি নিখুঁত অ্যানালগ আউটপুটের মতো ব্যবহার করা যাবে না।
  • বহিঃসংযোগ: PWM সংকেতের ক্ষেত্রে বাইরের কম্পোনেন্টের (যেমন মোটর বা স্পিকার) সহনশীলতা নিশ্চিত করতে হবে, কারণ উচ্চ ফ্রিকোয়েন্সির কারণে ক্ষতিগ্রস্ত হতে পারে।

PWM হল একটি কার্যকর পদ্ধতি যা Arduino তে এনালগ আউটপুট তৈরি করতে এবং বিভিন্ন ডিভাইস নিয়ন্ত্রণ করতে ব্যবহৃত হয়। এটি ব্যবহার করে সহজেই আলো, মোটর, এবং অন্যান্য ডিভাইস নিয়ন্ত্রণ করা যায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion